﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Libreria.SIG.Modelo;

namespace Libreria.SIG.Negocio
{
    public class TiqueteNegocio
    {
        public List<Tiquete> consultarTiquetes(Int32 codigo, String cadenaDeConexion)
        {
            List<Tiquete> Tiquetes = new List<Tiquete>();
            Tiquete listaDeTiquetes = new Tiquete(cadenaDeConexion);
            if (codigo > 0)
            {
                Tiquetes.Add(listaDeTiquetes.consultarPorCodigo(codigo));
            }
            else
            {
                Tiquetes = listaDeTiquetes.consultar();
            }
            return Tiquetes;
        }

        public List<Tiquete> consultarTiquetesDisponiblesPorIdentificadorUsuario(String identificadorUsuario, String cadenaDeConexion)
        {
            List<Tiquete> listaDeTiquetesDisponibles = new List<Tiquete>();
            Tiquete tiquetesDisponibles = new Tiquete(cadenaDeConexion);
            if (identificadorUsuario != null)
            {
                listaDeTiquetesDisponibles = tiquetesDisponibles.consultarDisponiblesPorIdentificadorUsuario(identificadorUsuario);
            }
            return listaDeTiquetesDisponibles;
        }

        public List<Tiquete> consultarTiquetesVendidosPorIdentificadorUsuario(String identificadorUsuario, String cadenaDeConexion)
        {
            List<Tiquete> listaDeTiquetesVendidos = new List<Tiquete>();
            Tiquete tiquetes = new Tiquete(cadenaDeConexion);
            tiquetes.IdentificadorUsuario = identificadorUsuario;
            tiquetes.ValorTiquete = null;
            tiquetes.FechaCompra = DateTime.MinValue;
            tiquetes.CodigoVenta = null;
            tiquetes.Codigo = null;
            listaDeTiquetesVendidos = tiquetes.consultar();
            for (int i = listaDeTiquetesVendidos.Count - 1; i >= 0; i--)
            {
                if (listaDeTiquetesVendidos[i].CodigoVenta == null)
                {
                    listaDeTiquetesVendidos.Remove(listaDeTiquetesVendidos[i]);
                }
            }
            return listaDeTiquetesVendidos;
        }

        public void eliminarTiquete(Int32 Codigo, String cadenaDeConexion)
        {
            Tiquete TiqueteAEliminar = new Tiquete(cadenaDeConexion);
            TiqueteAEliminar.Codigo = Codigo;
            TiqueteAEliminar.ValorTiquete = null;
            TiqueteAEliminar.FechaCompra = new DateTime();
            TiqueteAEliminar.IdentificadorUsuario = null;
            TiqueteAEliminar.CodigoVenta = null;
            TiqueteAEliminar.eliminar();
        }

        public void actualizarTiquete(Int32 Codigo, Double ValorTiquete, DateTime FechaCompra, String IdentificadorUsuario, Int32 CodigoVenta, String cadenaDeConexion)
        {
            Tiquete TiqueteAActualizar = new Tiquete(cadenaDeConexion);
            TiqueteAActualizar.Codigo = Codigo;
            TiqueteAActualizar.ValorTiquete = ValorTiquete;
            TiqueteAActualizar.FechaCompra = FechaCompra;
            TiqueteAActualizar.IdentificadorUsuario = IdentificadorUsuario;
            if (CodigoVenta > 0)
            {
                TiqueteAActualizar.CodigoVenta = CodigoVenta;
            }
            TiqueteAActualizar.actualizar();
        }

        public void asignarTiqueteAVenta(Int32 Codigo, Int32 CodigoVenta, String cadenaDeConexion)
        {
            Tiquete TiqueteAAsignar = new Tiquete(cadenaDeConexion);
            TiqueteAAsignar.Codigo = Codigo;
            TiqueteAAsignar.CodigoVenta = CodigoVenta;
            TiqueteAAsignar.actualizar();
        }

        public void crearTiquete(Int32 Codigo, Int32 CantidadTiquetes, Double ValorTiquete, DateTime FechaCompra, String IdentificadorUsuario, Int32 CodigoVenta, String cadenaDeConexion)
        {
            Tiquete TiqueteACrear = new Tiquete(cadenaDeConexion);
            TiqueteACrear.Codigo = Codigo;
            TiqueteACrear.ValorTiquete = ValorTiquete;
            TiqueteACrear.FechaCompra = DateTime.Now;
            TiqueteACrear.IdentificadorUsuario = IdentificadorUsuario;
            TiqueteACrear.CodigoVenta = null;
            for (int i = 1; i <= CantidadTiquetes; i++)
            {
                TiqueteACrear.crear();
            }
        }

    }
}
